/*
 * Copyright (C) 2023 KylinSoft Co., Ltd.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
#include "commontooltip.h"
#include <QBitmap>
#include <QPainter>
#include "theme.h"
#include <QVBoxLayout>

CommonToolTip::CommonToolTip(QWidget *parent) : QDialog(parent)
{

    setMinimumSize(155,48);
    resize(minimumSize());
    this->setAttribute(Qt::WA_TranslucentBackground);//设置窗口背景透明
    this->setWindowFlags(Qt::FramelessWindowHint|Qt::ToolTip); //设置无边框窗口
    setRoundStyle();
    setMsgLabelStyle();

}

void CommonToolTip::setMsgText(QString msg)
{
    m_msgLabel->setText(msg);
}

void CommonToolTip::paintEvent(QPaintEvent *event)
{
    Q_UNUSED(event);
    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing);  // 反锯齿;
    //底色
    painter.setBrush(theme::backcolcr);
    painter.setPen(theme::boderColor);
    QRect rect = this->rect();
    rect.setWidth(rect.width() - 1);
    rect.setHeight(rect.height() - 1);
    //圆角
    painter.drawRoundedRect(rect, 6, 6);
    QWidget::paintEvent(event);
}

void CommonToolTip::setRoundStyle()
{
    //圆角
    QBitmap bmp(this->size());
    bmp.fill();
    QPainter p(&bmp);
    p.setRenderHint(QPainter::Antialiasing);  // 反锯齿;
    p.setPen(Qt::NoPen);
    p.setBrush(palette().color(QPalette::Base));
    p.drawRoundedRect(bmp.rect(),6,6);
    setMask(bmp);
}

void CommonToolTip::setMsgLabelStyle()
{
    QSize size  = QSize(50,32);
    this->setMinimumSize(size);
    QVBoxLayout *mainvbox=new QVBoxLayout(this);
    this->setLayout(mainvbox);
    m_msgLabel = new QLabel(this);
    m_msgLabel->setMinimumSize(size);
    mainvbox->addWidget(m_msgLabel);

}
